Alteryxのコンテナの有効/無効を動的に切り替える
こんにちは、小澤です。
Alteryxではワークフローの一部をコンテナでまとめておくとが可能です。
このコンテナは"無効化"が可能なため、ワークフローの一部を実行しない、という仕組みが実現可能です。 また、2018.1移行のバージョンであればコンテナの有効/無効は簡単に切り替えられるようになっています。
今回は、このコンテナの有効/無効をAnalytic AppやMacroを利用する際にインターフェースから変更できる仕組みを紹介したいと思います。
実際にやってみる
では、実際にやる方法を解説していきます。 まずは、以下のようなAnalytic Appを用意します。
このワークフロー自体にはそれほど難しい部分はないかと思います。 流れとしては
- データを読み込む
- SVMとRandom Forestでモデル作成
- Unionツールで2つのモデルを1つのデータにして出力
さて、ここからが本題です。 まずは、以下のように片方のコンテナを無効化しておきます。
ここでは、Random forest側を無効化しているのでSVMのモデルのみが作成される状態となりました。
この状態でワークフロー部分は完了です。 続いて、これをApp化するためのインターフェース部分を見てみましょう。
こちらは左上に設置してある2つのRadio Buttonツールのみとなっています。 このワークフローでは、Actionツールを経由してツールではなくコンテナ左上の雷マークの部分に接続しています。
このように、インターフェースを経由してコンテナの設定値も変更可能になっています。
Actionツールの設定は以下のようにデフォルト値をそのまま利用しています。
下に注意書きがあるように、この設定では"ラジオボタンで選択されているときコンテナを無効化する"という動きになっています。 そのため、少々わかりづらくなっていますが、左側のSVMと名前を付けたRadio ButtonツールはRandom Forest用コンテナに接続し、右側のRandom Forestと名付けたコンテナはSVM用のコンテナに接続しています。
これによって
- ラジオボタンで選択したコンテナは無効化される
- ラジオボタンで選択していないコンテナは有効化される
という動きを実現しています。
このワークフローをAppとして実行すると、以下のような画面が表示されます。
SVMを選択すると、それにつながったRandom Forest用のコンテナが無効化され、選択されていないSVMのコンテナが有効化されるわけです。 Random Forestを選択した場合はその逆の動きとなります。
結果はそれぞれ以下のようになります。
Detourとの違いは?
さて、以前紹介したツールにDetourツールというものがあります。
このツールはラジオボタンやチェックボックスで設定した値によって処理を分岐させるツールでした。 Detourツールを使って処理を分岐させるのと、コンテナの有効/無効切り替えで処理を分岐させるのでは何が違うのでしょうか?
実は、この2つで実現できる機能という点では違いはありません。 そのため、基本的にはどちらを使っても問題ありません。
ワークフローのわかりやすさという観点では、処理の一部に分岐が必要な場合はDetourツール、2つの全く異なる処理が同居していて選択肢によってどちらか片方のみ実行する場合にはコンテナを活用するといいかと思います。
標準で用意されているツールを例にすると、今回も利用しているSVMツールはClassifierかRegressionかで処理を分ける際にDetourツールを利用しています。 一方、Socreツールではワークフローから受け取ったモデルを利用するかAlteryx Promoteからモデルを取得するかを分けるのにコンテナを利用しています。
おわりに
今回は、Alteryxでコンテナの有効/無効を実行時に切り替える方法を紹介しました。 Analytic Appやマクロでの利用となるため、やや高度な話とはなりますが覚えておくと便利な場面もあったりします。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。